package com.sunday.common.core.enums;

import com.sunday.common.core.gson.GsonUtils;
import lombok.AllArgsConstructor;

import java.util.Map;

/**
 * @Description: 平台统一错误码
 * <p>
 * PS：不允许私自添加枚举类别，新增后需要同步更新文档
 * <p>
 * 【强制】错误产生来源分为 A/B/C，
 * <p>
 * A 表示错误来源于用户，比如参数错误，用户安装版本过低，用户支付超时等问题；
 * B 表示错误来源于当前系统，往往是业务逻辑出错，或程序健壮性差等问题；
 * C 表示错误来源于第三方服务，比如 CDN 服务出错，消息投递超时等问题；
 * <p>
 * 四位数字编号从 0001 到 9999，大类之间的步长间距预留 100
 * <p>
 * 【推荐】错误码分为一级宏观错误码、二级宏观错误码、三级宏观错误码。
 * 说明：在无法更加具体确定的错误场景中，可以直接使用一级宏观错误码，分别是：A0001（用户端错误）、 B0001（系统执行出错）、C0001（调用第三方服务出错）。
 * 正例：调用第三方服务出错是一级，中间件错误是二级，消息服务出错是三级。
 * <p>
 * 【推荐】错误码之外的业务独特信息由 error_message 来承载，而不是让错误码本身涵盖过多具体业务属性。
 * 【推荐】在获取第三方服务错误码时，向上抛出允许本系统转义，由 C 转为 B，并且在错误信息上带上原有的第三方错误码。
 * @Author: zsy
 * @Create: 2022/10/13 14:20
 */
@AllArgsConstructor
public enum ErrorCodeEnum {
    /**
     * A0001    用户端错误        一级宏观错误码
     */
    A0_001(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0001", "用户端错误"),                   //一级宏观错误码
    /**
     * A0100    用户注册错误        二级宏观错误码
     */
    A0_100(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0100", "用户注册错误"),                  //二级宏观错误码
    A0_101(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0101", "用户未同意隐私协议"),
    A0_102(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0102", "注册国家或地区受限"),
    A0_110(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0110", "用户名校验失败"),
    A0_111(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0111", "用户名已存在"),
    A0_112(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0112", "用户名包含敏感词"),
    A0_113(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0113", "用户名包含特殊字符"),
    A0_120(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0120", "密码校验失败"),
    A0_121(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0121", "密码长度不够"),
    A0_122(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0122", "密码强度不够"),
    A0_130(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0130", "校验码输入错误"),
    A0_131(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0131", "短信校验码输入错误"),
    A0_132(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0132", "邮件校验码输入错误"),
    A0_133(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0133", "语音校验码输入错误"),
    A0_140(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0140", "用户证件异常"),
    A0_141(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0141", "用户证件类型未选择"),
    A0_142(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0142", "大陆身份证编号校验非法"),
    A0_143(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0143", "护照编号校验非法"),
    A0_144(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0144", "军官证编号校验非法"),
    A0_150(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0150", "用户基本信息校验失败"),
    A0_151(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0151", "手机格式校验失败"),
    A0_152(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0152", "地址格式校验失败"),
    A0_153(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0153", "邮箱格式校验失败"),
    /**
     * A0200    用户登录异常        二级宏观错误码
     */
    A0_200(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0200", "用户登录异常"),                  //二级宏观错误码
    A0_201(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0201", "用户账户不存在"),
    A0_202(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0202", "用户账户被冻结"),
    A0_203(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0203", "用户账户已作废"),
    A0_210(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0210", "用户密码错误"),
    A0_211(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0211", "用户输入密码错误次数超限"),
    A0_220(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0220", "用户身份校验失败"),
    A0_221(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0221", "用户指纹识别失败"),
    A0_222(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0222", "用户面容识别失败"),
    A0_223(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0223", "用户未获得第三方登录授权"),
    A0_230(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0230", "用户登录已过期"),
    A0_240(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0240", "用户验证码错误"),
    A0_241(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0241", "用户验证码尝试次数超限"),
    /**
     * A0300    访问权限异常        二级宏观错误码
     */
    A0_300(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0300", "访问权限异常"),                  //二级宏观错误码
    A0_301(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0301", "访问未授权"),
    A0_302(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0302", "正在授权中"),
    A0_303(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0303", "用户授权申请被拒绝"),
    A0_310(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0310", "因访问对象隐私设置被拦截"),
    A0_311(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0311", "授权已过期"),
    A0_312(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0312", "无权限使用 API"),
    A0_320(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0320", "用户访问被拦截"),
    A0_321(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0321", "黑名单用户"),
    A0_322(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0322", "账号被冻结"),
    A0_323(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0323", "非法 IP 地址"),
    A0_324(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0324", "网关访问受限"),
    A0_325(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0325", "地域黑名单"),
    A0_330(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0330", "服务已欠费"),
    A0_340(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0340", "用户签名异常"),
    A0_341(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0341", "RSA 签名错误"),
    /**
     * A0400    用户请求参数错误        二级宏观错误码
     */
    A0_400(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0400", "用户请求参数错误"),            //二级宏观错误码
    A0_401(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0401", "包含非法恶意跳转链接"),
    A0_402(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0402", "无效的用户输入"),
    A0_410(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0410", "请求必填参数为空"),
    A0_411(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0411", "用户订单号为空"),
    A0_412(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0412", "订购数量为空"),
    A0_413(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0413", "缺少时间戳参数"),
    A0_414(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0414", "非法的时间戳参数"),
    A0_420(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0420", "请求参数值超出允许的范围"),
    A0_421(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0421", "参数格式不匹配"),
    A0_422(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0422", "地址不在服务范围"),
    A0_423(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0423", "时间不在服务范围"),
    A0_424(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0424", "金额超出限制"),
    A0_425(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0425", "数量超出限制"),
    A0_426(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0426", "请求批量处理总个数超出限制"),
    A0_427(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0427", "请求 JSON 解析失败"),
    A0_430(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0430", "用户输入内容非法"),
    A0_431(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0431", "包含违禁敏感词"),
    A0_432(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0432", "图片包含违禁信息"),
    A0_433(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0433", "文件侵犯版权"),
    A0_440(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0440", "用户操作异常"),
    A0_441(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0441", "用户支付超时"),
    A0_442(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0442", "确认订单超时"),
    A0_443(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0443", "订单已关闭"),
    /**
     * A0500    用户请求服务异常        二级宏观错误码
     */
    A0_500(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0500", "用户请求服务异常"),            //二级宏观错误码
    A0_501(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0501", "请求次数超出限制"),
    A0_502(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0502", "请求并发数超出限制"),
    A0_503(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0503", "用户操作请等待"),
    A0_504(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0504", "WebSocket 连接异常"),
    A0_505(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0505", "WebSocket 连接断开"),
    A0_506(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0506", "用户重复请求"),
    /**
     * A0600    用户资源异常        二级宏观错误码
     */
    A0_600(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0600", "用户资源异常"),                  //二级宏观错误码
    A0_601(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0601", "账户余额不足"),
    A0_602(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0602", "用户磁盘空间不足"),
    A0_603(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0603", "用户内存空间不足"),
    A0_604(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0604", "用户 OSS 容量不足"),
    A0_605(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0605", "用户配额已用光 蚂蚁森林浇水数或每天抽奖数"),
    /**
     * A0700    用户上传文件异常        二级宏观错误码
     */
    A0_700(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0700", "用户上传文件异常"),            //二级宏观错误码
    A0_701(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0701", "用户上传文件类型不匹配"),
    A0_702(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0702", "用户上传文件太大"),
    A0_703(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0703", "用户上传图片太大"),
    A0_704(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0704", "用户上传视频太大"),
    A0_705(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0705", "用户上传压缩文件太大"),
    /**
     * A0800    用户当前版本异常        二级宏观错误码
     */
    A0_800(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0800", "用户当前版本异常"),            //二级宏观错误码
    A0_801(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0801", "用户安装版本与系统不匹配"),
    A0_802(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0802", "用户安装版本过低"),
    A0_803(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0803", "用户安装版本过高"),
    A0_804(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0804", "用户安装版本已过期"),
    A0_805(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0805", "用户 API 请求版本不匹配"),
    A0_806(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0806", "用户 API 请求版本过高"),
    A0_807(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0807", "用户 API 请求版本过低"),
    /**
     * A0900    用户隐私未授权        二级宏观错误码
     */
    A0_900(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0900", "用户隐私未授权"),             //二级宏观错误码
    A0_901(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0901", "用户隐私未签署"),
    A0_902(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0902", "用户摄像头未授权"),
    A0_903(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0903", "用户相机未授权"),
    A0_904(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0904", "用户图片库未授权"),
    A0_905(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0905", "用户文件未授权"),
    A0_906(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0906", "用户位置信息未授权"),
    A0_907(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "0907", "用户通讯录未授权"),
    /**
     * A1000    用户设备异常        二级宏观错误码
     */
    A1_000(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "1000", "用户设备异常"),              //二级宏观错误码
    A1_001(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "1001", "用户相机异常"),
    A1_002(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "1002", "用户麦克风异常"),
    A1_003(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "1003", "用户听筒异常"),
    A1_004(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "1004", "用户扬声器异常"),
    A1_005(ErrorClassifyEnum.A, ErrorClassifyEnum.A + "1005", "用户 GPS 定位异常"),
    /**
     * B0001    系统执行出错        一级宏观错误码
     */
    B0_001(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0001", "系统执行出错"),              //一级宏观错误码
    /**
     * B0100    系统执行超时        二级宏观错误码
     */
    B0_100(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0100", "系统执行超时"),              //二级宏观错误码
    B0_101(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0101", "系统订单处理超时"),
    /**
     * B0200    系统容灾功能被触发        二级宏观错误码
     */
    B0_200(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0200", "系统容灾功能被触发"),       //二级宏观错误码
    B0_210(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0210", "系统限流"),
    B0_220(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0220", "系统功能降级"),
    /**
     * B0300    系统资源异常        二级宏观错误码
     */
    B0_300(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0300", "系统资源异常"),              //二级宏观错误码
    B0_310(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0310", "系统资源耗尽"),
    B0_311(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0311", "系统磁盘空间耗尽"),
    B0_312(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0312", "系统内存耗尽"),
    B0_313(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0313", "文件句柄耗尽"),
    B0_314(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0314", "系统连接池耗尽"),
    B0_315(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0315", "系统线程池耗尽"),
    B0_320(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0320", "系统资源访问异常"),
    B0_321(ErrorClassifyEnum.B, ErrorClassifyEnum.B + "0321", "系统读取磁盘文件失败"),

    /**
     * C0001    调用第三方服务出错
     */
//    C0_001(ErrorClassifyEnum.C, ErrorClassifyEnum.C+"0001","调用第三方服务出错"),
    /**
     * C0100    中间件服务出错        一级宏观错误码
     */
    C0_100(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0100", "中间件服务出错"),         //一级宏观错误码
    /**
     * C0110    服务出错        二级宏观错误码
     */
    C0_110(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0110", "RPC 服务出错"),           //二级宏观错误码
    C0_111(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0111", "RPC 服务未找到"),
    C0_112(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0112", "RPC 服务未注册"),
    C0_113(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0113", "接口不存在"),
    C0_120(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0120", "消息服务出错"),
    C0_121(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0121", "消息投递出错"),
    C0_122(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0122", "消息消费出错"),
    C0_123(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0123", "消息订阅出错"),
    C0_124(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0124", "消息分组未查到"),
    C0_130(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0130", "缓存服务出错"),
    C0_131(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0131", "key 长度超过限制"),
    C0_132(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0132", "value 长度超过限制"),
    C0_133(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0133", "存储容量已满"),
    C0_134(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0134", "不支持的数据格式"),
    C0_140(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0140", "配置服务出错"),
    C0_150(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0150", "网络资源服务出错"),
    C0_151(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0151", "VPN 服务出错"),
    C0_152(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0152", "CDN 服务出错"),
    C0_153(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0153", "域名解析服务出错"),
    C0_154(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0154", "网关服务出错"),
    /**
     * C0200    第三方系统执行超时        二级宏观错误码
     */
    C0_200(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0200", "第三方系统执行超时"),       //二级宏观错误码
    C0_210(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0210", "RPC 执行超时"),
    C0_220(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0220", "消息投递超时"),
    C0_230(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0230", "缓存服务超时"),
    C0_240(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0240", "配置服务超时"),
    C0_250(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0250", "数据库服务超时"),
    /**
     * C0300    数据库服务出错        二级宏观错误码
     */
    C0_300(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0300", "数据库服务出错"),         //二级宏观错误码
    C0_311(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0311", "表不存在"),
    C0_312(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0312", "列不存在"),
    C0_321(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0321", "多表关联中存在多个相同名称的列"),
    C0_331(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0331", "数据库死锁"),
    C0_341(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0341", "主键冲突"),
    /**
     * C0400    第三方容灾系统被触发        二级宏观错误码
     */
    C0_400(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0400", "第三方容灾系统被触发"),      //二级宏观错误码
    C0_401(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0401", "第三方系统限流"),
    C0_402(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0402", "第三方功能降级"),
    /**
     * C0500    通知服务出错        二级宏观错误码
     */
    C0_500(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0500", "通知服务出错"),              //二级宏观错误码
    C0_501(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0501", "短信提醒服务失败"),
    C0_502(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0502", "语音提醒服务失败"),
    C0_503(ErrorClassifyEnum.C, ErrorClassifyEnum.C + "0503", "邮件提醒服务失败");

    public final ErrorClassifyEnum classify;

    public final String errorCode;

    public final String errorMessage;

    public String toJson() {
        return GsonUtils.DEFAULT.toJson(Map.of(this.errorCode, this.errorMessage));
    }

}